package com.irdstudio.efp.esb.service.bo.req;

import java.io.Serializable;
import java.util.List;

import com.alibaba.fastjson.annotation.JSONField;
import com.alibaba.fastjson.annotation.JSONPOJOBuilder;
import com.alibaba.fastjson.annotation.JSONType;

@JSONType(builder = BaseZXReqBean.Builder.class)
public class BaseZXReqBean<T extends ZXQueryReports> implements Serializable {
	private static final long serialVersionUID = -2538069293291135833L;
	
	private String SysId;
	private String UsrID;
	private String PKey;
	private String RqsID;
	private List<T> QryRptsInfArry;
	
	private BaseZXReqBean() {}
	
	private BaseZXReqBean(Builder<T> builder) {
		this.SysId = builder.SysId;
		this.UsrID = builder.UsrID;
		this.PKey = builder.PKey;
		this.RqsID = builder.RqsID;
		this.QryRptsInfArry = builder.QryRptsInfArry;
	}
	@JSONField(name="SysId")
	public String getSystemId() { return SysId; }
	@JSONField(name="UsrID")
	public String getUserId() { return UsrID; }
	@JSONField(name="PKey")
	public String getpKey() { return PKey; }
	@JSONField(name="RqsID")
	public String getQueryId() { return RqsID; }
	@JSONField(name="QryRptsInfArry")
	public List<T> getQryRptsInfArry() { return QryRptsInfArry; }

	@JSONPOJOBuilder(buildMethod = "build", withPrefix = "with")
	public static class Builder<T extends ZXQueryReports> {
		private String SysId;
		private String UsrID;
		private String PKey;
		private String RqsID;
		private List<T> QryRptsInfArry;
		
		public Builder<T> withSysId(String val) 
			{ SysId = val; return this; }
		public Builder<T> withUsrID(String val) 
			{ UsrID = val; return this; }
		public Builder<T> withPKey(String val) 
			{ PKey = val; return this; }
		public Builder<T> withRqsID(String val) 
			{ RqsID = val; return this; }
		public Builder<T> withQryRptsInfArry(List<T> val) 
			{ QryRptsInfArry = val; return this; }
		
		public BaseZXReqBean<T> build() {
			return new BaseZXReqBean<T>(this);
		}
	}

	@Override
	public String toString() {
		return "BaseZXReqBean [RqsID=" + RqsID + ", QryRptsInfArry=" + QryRptsInfArry + "]";
	}
}
